Existing versions of the General Parallel File System (“GPFS”) allow up to two nodes to be designated as Network Storage Disk (“NSD”) servers for any given LUN/NSD (Logical Unit Number/Network Storage Disk). Currently, if a single NSD server is defined, it is designated as the primary NSD server. If two servers are defined, the first server in the list is designated as the primary NSD server and the other server is designated as the backup NSD server. The primary NSD server is responsible for performing input-output (“I/O”) and associated data transfer over a designated (global) GPFS network to any GPFS client that does not have local access to the NSD. By default, the data transfer from an active NSD server to any NSD client takes place over the global GPFS network used to define the GPFS cluster.
Recently, GPFS introduced the “subnet” function. With the “subnet” function, some clients that are connected to the NSD server via a high speed network have data transferred over this high-speed network rather than over the global GPFS network. One limitation with current GPFS implementations is that only one NSD server can access the NSD at a time. For example, if one NSD server is designated as a primary server another server such as the designated backup server cannot serve the NSD unless the primary server fails. Stated differently, there is only a single NSD server that performs I/O with respect to a given NSD on behalf of all clients that do not have local access to the given NSD server. Allowing only one NSD server to access the NSD can be inefficient in terms of performance with respect to load balancing, network partitioning, workload partitioning, etc.